import Vue from 'vue';
import VueRouter from 'vue-router';
import store from '@/store';

import routes from '@/common/config/router';

Vue.use(VueRouter);

const router = new VueRouter({
    // hash模式
    mode: 'hash',
    // 基本路径
    base: process.env.BASE_URL,
    // 我的路由表
    routes
});

router.beforeEach((to, from, next) => {
    // token为空说明用户未登录
    let token = store.state.getTokenModule.token;

    // 如果路由中有meta的requireAuth，且为true，就进行登录验证，否则不进行登录验证
    if (
        to.matched.some(
            record => record.meta.requiresAuth
        )
    ) {
        // 这里判断用户是否登录，我例子中是验证vuex里是否有token
        if (!token) {
            console.log('没有token，我被打回了登录页');

            next({
                path: '/user/accountlogin',
                // 从哪个目标路由重定向回来的
                query: {
                    redirect: to.fullPath
                }
            });
        } else {
            next();
        }
    } else {
        // 确保一定要调用next()
        next();
    }
});

// 路由进入后全局守卫
// router.afterEach ( ( to, from, next ) => {

// });

export default router;
